class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        if(nums.size()<3){
            return true;
        }
        int counts=0;
        if(nums[0]>nums[1]){
            nums[0]=nums[1];
            counts++;
        }
        for(int j=1;j<nums.size()-1;j++){
            if(nums[j]>nums[j+1]){
                counts++;
                if(counts==2){
                    return false;
                }
                if(nums[j-1]>nums[j+1]){
                    nums[j+1]=nums[j];
                } else{
                    nums[j]=nums[j+1];
                }
            }
        }
        return true;
    }
};